package leetcode.editor.template.sort;

/**
 * 冒泡排序（带标志位）
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] nums = new int[]{1,3,5,4,8,6,7,8,10,22,55};
        for (int i = 0; i < nums.length - 1; i++) {
            boolean flag = false;   // 标志位
            for (int j = i; j < nums.length - 1; j++) {
                if (nums[j] > nums[j + 1]) {
                    int temp = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = temp;
                    flag = true;    // 如果进行了一次交换，标志位设为true
                }
            }
            if (!flag) {
                break;  // 内循环未交换任何元素，则跳出
            }
        }
        for (int num : nums) {
            System.out.print(num + " ");
        }
    }
}
